//
//  HACTecCalculator.h
//  HStockCharts
//
//  Created by Hotacool on 2018/9/30.
//

#import <Foundation/Foundation.h>
#import "HACIndexEntry.h"
#import "HACKLineEntry.h"

@interface HACTecCalculator : NSObject

+ (NSArray<HACTecMACDEntry*>*)calculateMACDWithData:(NSArray*)data
                                               ema1:(NSInteger)ema1
                                               ema2:(NSInteger)ema2
                                                dea:(NSInteger)dea;

+(NSArray<HACTecKDJEntry *> *)calculateKDJWithData:(NSArray<HACKLineEntry*> *)data
                                                 N:(NSInteger)N
                                                M1:(NSInteger)M1
                                                M2:(NSInteger)M2;

+(NSArray<HACTecRSIEntry *> *)calculateRSIWithData:(NSArray<HACKLineEntry*> *)data
                                                N1:(NSInteger)N1
                                                N2:(NSInteger)N2
                                                N3:(NSInteger)N3;

+(NSArray<HACTecBOLLEntry *> *)calculateBOLLWithData:(NSArray<HACKLineEntry*> *)data
                                                MA:(NSInteger)ma
                                                W:(NSInteger)w;

+(NSArray<HACTecPSYEntry *> *)calculatePSYWithData:(NSArray<HACKLineEntry*> *)data
                                                 N:(NSInteger)N
                                                 M:(NSInteger)M;

+(NSArray<HACTecOBVEntry *> *)calculateOBVWithData:(NSArray<HACKLineEntry*> *)data
                                                 M:(NSInteger)M;

+(NSArray<HACTecDMIEntry *> *)calculateDMIWithData:(NSArray<HACKLineEntry*> *)data
                                                 N:(NSInteger)N
                                                 M:(NSInteger)M;

+(NSArray<HACTecWREntry *> *)calculateWRWithData:(NSArray<HACKLineEntry*> *)data
                                            ema1:(NSInteger)ema1
                                            ema2:(NSInteger)ema2;

+(NSArray<HACTecASIEntry *> *)calculateASIWithData:(NSArray<HACKLineEntry*> *)data
                                                 M:(NSInteger)M;

+ (NSArray<HACTecDMAEntry*>*)calculateDMAWithData:(NSArray<HACKLineEntry * >*)data
                                             ema1:(NSInteger)ema1
                                             ema2:(NSInteger)ema2
                                              dea:(NSInteger)dea;

+(NSArray<HACTecBIASEntry *> *)calculateBIASWithData:(NSArray<HACKLineEntry*> *)data
                                                  N1:(NSInteger)N1
                                                  N2:(NSInteger)N2
                                                  N3:(NSInteger)N3;

+(NSArray<HACTecVREntry *> *)calculateVRWithData:(NSArray<HACKLineEntry*> *)data
                                               N:(NSInteger)N;

+(NSArray<HACTecCCIEntry *> *)calculateCCIWithData:(NSArray<HACKLineEntry*> *)data
                                                 N:(NSInteger)N;


@end
